Fix ChangeLog entries for the last commit.
authorEli Zaretskii <eliz@gnu.org>
Sat, 24 Nov 2012 06:24:13 +0000 (08:24 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 24 Nov 2012 06:24:13 +0000 (08:24 +0200)
nt/ChangeLog
src/ChangeLog

index 510ede8f1e8aef724f8596ced9959d1a738f82b1..54d69bfb2a55a556348b0b71cd2d37bad6c07971 100644 (file)
@@ -1,10 +1,8 @@
-2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+2012-11-23  Eli Zaretskii  <eliz@gnu.org>
 
        Fix a race condition with glib (Bug#8855).
        This is a backport from the trunk, consisting of:
 
-       2012-11-17  Eli Zaretskii  <eliz@gnu.org>
-
        * inc/sys/wait.h: New file, with prototype of waitpid and
        definitions of macros it needs.
        * inc/ms-w32.h (wait): Don't define, 'wait' is not used anymore.
index 6928fb3b36541ba91bee759658c35f98e6c0f08e..adfb5580d87d3bb093765ec9c9d4f3522d9cd642 100644 (file)
@@ -1,9 +1,18 @@
 2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+           Eli Zaretskii  <eliz@gnu.org>
 
        Fix a race condition with glib (Bug#8855).
-       This is a backport from the trunk, consisting of:
+       The symptom is a diagnostic "GLib-WARNING **: In call to
+       g_spawn_sync(), exit status of a child process was requested but
+       SIGCHLD action was set to SIG_IGN and ECHILD was received by
+       waitpid(), so exit status can't be returned."  The diagnostic
+       is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
+       The real bug is a race condition between Emacs and glib: Emacs
+       does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
+       so that glib can't find it.  Work around the bug by invoking
+       waitpid only on subprocesses that Emacs itself creates.
 
-       2012-11-17  Eli Zaretskii  <eliz@gnu.org>
+       This is a backport from the trunk, consisting of:
 
        * w32proc.c (create_child): Don't clip the PID of the child
        process to fit into an Emacs integer, as this is no longer a
 
        * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
        no longer needed.
-       (record_child_status_change): Remove the setting of
-       record_at_most_one_child for the !WNOHANG case.
-
-       2012-11-03  Paul Eggert  <eggert@cs.ucla.edu>
-
-       Fix a race condition that causes Emacs to mess up glib (Bug#8855).
-       This is a backport from the trunk.
-       The symptom is a diagnostic "GLib-WARNING **: In call to
-       g_spawn_sync(), exit status of a child process was requested but
-       SIGCHLD action was set to SIG_IGN and ECHILD was received by
-       waitpid(), so exit status can't be returned."  The diagnostic
-       is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
-       The real bug is a race condition between Emacs and glib: Emacs
-       does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
-       so that glib can't find it.  Work around the bug by invoking
-       waitpid only on subprocesses that Emacs itself creates.
-       * process.c (create_process, record_child_status_change):
-       Don't use special value -1 in pid field, as the caller now must
-       know the pid rather than having the callee infer it.  The
-       inference was sometimes incorrect anyway, due to another race.
+       (create_process, record_child_status_change): Don't use special
+       value -1 in pid field, as the caller now must know the pid rather
+       than having the callee infer it.  The inference was sometimes
+       incorrect anyway, due to another race.
        (create_process): Set new 'alive' member if child is created.
        (process_status_retrieved): New function.
        (record_child_status_change): Use it.
@@ -47,7 +40,8 @@
        processes that Emacs already knows about.  Move special-case code
        for DOS_NT (which lacks WNOHANG) here, from caller.  Keep track of
        processes that have already been waited for, by testing and
-       clearing new 'alive' member.
+       clearing new 'alive' member. Remove the setting of
+       record_at_most_one_child for the !WNOHANG case.
        (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
        now does this internally.
        (handle_child_signal): Let record_child_status_change do all